using Newtonsoft.Json;

namespace SlickGridNet.Serialization
{
	/// <summary>
	/// Explicit object it's objet that will be serialized as it's class Full Name.
	/// <para>If, say, class <c>Z</c> defined in namespace <c>A.B</c> then object of that class will be serialized as
	/// value without quotes <c>A.B.Z</c></para>
	/// <para>Behaviour can be overriden using <see cref="ExplicitName"/> propety.</para>
	/// </summary>
	[JsonConverter(typeof (ExplicitObjectConverter))]
	public interface IExplicitObject
	{
		/// <summary>
		/// Returns explicit name of object wich will be used as serialization result of that object.
		/// <para>If value of ExplicitName is <c>null</c> object will be serialized as type FullName</para>
		/// </summary>
		string ExplicitName { get; }
	}
}